/**
 * 垃圾回收（GC）
 * - 就像人生活的时间长了会产生垃圾一样，程序运行过程中也会产生垃圾
 *      这些垃圾积攒过多以后，会导致程序运行的速度越来越慢
 *      所以需要一个垃圾回收机制，来处理程序运行过程中产生的垃圾
 * - 当一个对象没有任何的变量或属性对它的引用，此时将永远无法操作该对象
 *      此时这种对象就是一个垃圾，这种对象垃圾过多会占用大量的内存空间，导致程序运行变慢
 *      所以这种垃圾必须进行清理
 * - 在JS中拥有自动的垃圾回收机制，会自动将这些垃圾对象从内存中销毁
 *      不需要自己进行垃圾回收的操作
 * - 我们需要做的只是将不再使用的对象设置为null即可
 */

/* var obj1 = {};
obj1 = null; */
function Person(name, age) {
  this.name = name;
  this.age = age;
}

var per1 = new Person("孙悟空", 18);
var per2 = new Person("猪八戒", 16);
var per3 = new Person("沙和尚", 38);

var perArr = [per1, per2, per3];

function getAdult(arr) {
  var newArr = [];

  for (var i = 0; i < perArr.length; ++i) {
    var item = perArr[i];
    if (item.age >= 18) {
      newArr.push(item);
    }
  }

  return newArr;
}

console.log(getAdult(perArr));
